using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pardusshipcalc
{
    class Ship
    {
        public int shipReturnData
        {
            get;
            set;
        }

        #region shipArray
        // Ship Data Array
        // Format:  {1. missile mounts, 2. gun mounts, 3. hull cap, 4. size, 5. armor, 6. hull, 7. class(coin), 8. req. xp/rank, 9. price, 10. crew seats}
        // Faction/Syndicate ranks are 1.~ feds, 2.~ emps etc.
        int[,] shipData = {
                              {0,1,70,12,225,195, 5, 0, 15000,0}, /* 0. Sabre */
                              {0,1,105,63,135,240, 6, 645, 21500,0 },/* 1.Rustclaw */
                              {1, 3, 85, 8, 285, 165, 0, 2220, 74000, 0}, /* 2. Interceptor */
                              { 0, 0, 180, 45, 300, 270, 6, 11460, 382000, 1}, /* 3. Lanner Mini */
                              {4,2,165,56,210,375,4,12600,420000,1}, /* 4. Harrier */
                              {3,3,120,27,390,210,1,25560,426000,1}, /* 5. Mercury */
                              {10,2,255,66,195,525,5,79200,1320000,2}, /* 6. Hercules */
                              {0,0,285,98,390,375,6,94500,1575000,2}, /* 7. Lanner */
                              {0,5,150,33,480,225,0,102000,1700000,1}, /* 8. Hawk */
                              {6,4,195,79,450,450,2,177000,2950000,2}, /* 9. Gargantua */
                              {8,2,315,206,405,720,6,299700,4995000,3}, /* 10. BBB */
                              {8,4,240,82,510,525,2,509850,16995000,3}, /* 11. Liberator */
                              {6,1,340,408,330,750,6,1368000,45600000,3}, /* 11.5 Leviathan */
                              {0,2,75,14,240,225,2,11,20000,0}, /* 12. Wasp */
                              {2,1,100,18,255,285,5,12,35000,0}, /* 13. Adder */
                              {3,2,125,29,270,360,4,13,121000,1}, /* 14. Thunderbird */
                              {2,3,95,10,405,300,0,14,183000,0}, /* 15. Viper Defence Craft */
                              {6,2,225,92,210,525,6,16,532000,2}, /* 16. Babel Transporter */
                              {0,4,130,24,375,315,0,16,566000,0}, /* 17. Piranha */
                              {1,4,165,29,510,270,0,18,2000000,1}, /* 18. Nighthawk */
                              {3,4,175,36,540,300,0,19,3000000,2}, /* 19. Nighthawk Deluxe */
                              {8,3,250,134,390,600,4,19,3300000,2}, /* 20. Mantis */
                              {14,2,310,104,345,750,6,110,4100000,2}, /* 21. Extender */
                              {7,4,220,68,585,465,0,111,8900000,2}, /* 22. Gauntlet */
                              {10,5,265,101,720,585,1,113,34750000,3}, /* 23. Doomstar */
                              {25,5,290,250,990,810,1,114,105000000,4}, /* 24. War Nova */
                              {0,2,80,17,270,210,2,21,21000,0}, /* 25. Ficon */
                              {3,0,130,74,60,300,6,22,38500,1}, /* 26. Tyrant */
                              {2,2,135,34,225,330,5,23,190000,0}, /* 27. Spectre */
                              {0,4,95,7,405,90,0,24,310000,0}, /* 28. Shadow Stealth Craft */
                              {4,3,160,46,375,375,2,25,964000,1}, /* 29. Venom. */
                              {8,2,260,131,285,570,6,27,1500000,2}, /* 30. Constrictor */
                              {2,4,155,23,525,150,0,29,2720000,1}, /* 31. Phantom Advanced Stealth Craft */
                              {6,4,210,88,495,570,1,210,3650000,2}, /* 32. Dominator */
                              {12,2,330,182,465,795,6,211,8250000,2}, /* 33. Boa UC */
                              {16,4,325,142,540,945,3,213,37900000,4}, /* 34. Mooncrusher */
                              {1,2,100,60,210,255,4,32,32500,0}, /* 35. Rustfire */
                              {0,3,105,14,330,120,0,34,200000,0}, /* 36. Marauder */
                              {2,1,210,52,90,540,6,35,780000,0}, /* 37. Junker IV */
                              {2,3,180,38,285,330,3,36,1330000,1}, /* 38. Slider */
                              {6,2,270,140,195,510,6,37,1650000,2}, /* 39. Elpadre */
                              {4,4,175,46,420,240,1,38,2310000,1}, /* 40. Chitin */
                              {0,4,255,78,390,420,2,310,5050000,2}, /* 41. Horpor */
                              {6,4,235,84,630,525,1,312,15125000,3}, /* 42. Scorpion */
                              {6,3,125,20,420,120,1,46,600000,0}, /* 43. Rover */
                              {8,4,160,50,495,185,0,49,1960000,1}, /* 44. Reaper */
                              {11,3,235,98,390,270,3,410,3125000,2}, /* 45. Blood Lanner */
                              {5,5,195,75,600,300,0,412,15000000,3}, /* 46. Sudden Death */
                              {2,4,140,26,330,510,1,57,990000,1}, /* 47. Trident */
                              {4,1,290,90,360,450,6,59,2500000,2}, /* 48. Celeus */
                              {4,3,215,30,405,600,2,511,7900000,2}, /* 49. Vulcan */
                              {8,4,255,85,540,540,2,513,18050000,4}, /* 50. Liberator EPS */
                              {5,4,190,39,480,420,1,510,5250000,2}, /* 51. Pantagruel */
                              {1,5,135,9,500,150,0,512,14200000,1}, /* 52. Nano */
                               // Format:  {1. missile mounts, 2. gun mounts, 3. hull cap, 4. size, 5. armor, 6. hull, 7. class(coin), 8. req. xp/rank, 9. price, 10. crew seats}
                              };// End of ship data tables.
        #endregion

        public static void Initialise()
        {          
        }

        public int GetShipData(ref int mode, string shipText)
        {
            // Begin Ship-dependant ShipData array lookups.
            switch (shipText)
            {
                case "":
                    shipReturnData = 0;
                    return shipReturnData;

                case " ":
                    shipReturnData = 0;
                    return shipReturnData;

                case "Neutral Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Sabre":
                    shipReturnData = shipData[0, mode];
                    return shipReturnData;

                case "- Rustclaw":
                    shipReturnData = shipData[1, mode];
                    return shipReturnData;

                case "- Interceptor":
                    shipReturnData = shipData[2, mode];
                    return shipReturnData;

                case "- Lanner Mini":
                    shipReturnData = shipData[3, mode];
                    return shipReturnData;

                case "- Harrier":
                    shipReturnData = shipData[4, mode];
                    return shipReturnData;

                case "- Mercury":
                    shipReturnData = shipData[5, mode];
                    return shipReturnData;

                case "- Hercules":
                    shipReturnData = shipData[6, mode];
                    return shipReturnData;

                case "- Lanner":
                    shipReturnData = shipData[7, mode];
                    return shipReturnData;

                case "- Hawk":
                    shipReturnData = shipData[8, mode];
                    return shipReturnData;

                case "- Gargantua":
                    shipReturnData = shipData[9, mode];
                    return shipReturnData;

                case "- Behemoth":
                    shipReturnData = shipData[10, mode];
                    return shipReturnData;

                case "- Liberator":
                    shipReturnData = shipData[11, mode];
                    return shipReturnData;

                case "- Leviathan":
                    shipReturnData = shipData[12, mode];
                    return shipReturnData;

                case "Federation Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Wasp":
                    shipReturnData = shipData[13, mode];
                    return shipReturnData;

                case "- Adder":
                    shipReturnData = shipData[14, mode];
                    return shipReturnData;

                case "- Thunderbird":
                    shipReturnData = shipData[15, mode];
                    return shipReturnData;

                case "- Viper Defence Craft":
                    shipReturnData = shipData[16, mode];
                    return shipReturnData;

                case "- Babel Transporter":
                    shipReturnData = shipData[17, mode];
                    return shipReturnData;

                case "- Piranha":
                    shipReturnData = shipData[18, mode];
                    return shipReturnData;

                case "- Nighthawk":
                    shipReturnData = shipData[19, mode];
                    return shipReturnData;

                case "- Nighthawk Deluxe":
                    shipReturnData = shipData[20, mode];
                    return shipReturnData;

                case "- Mantis":
                    shipReturnData = shipData[21, mode];
                    return shipReturnData;

                case "- Extender":
                    shipReturnData = shipData[22, mode];
                    return shipReturnData;

                case "- Gauntlet":
                    shipReturnData = shipData[23, mode];
                    return shipReturnData;

                case "- Doomstar":
                    shipReturnData = shipData[24, mode];
                    return shipReturnData;

                case "- War Nova":
                    shipReturnData = shipData[25, mode];
                    return shipReturnData;

                case "Empire Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Ficon":
                    shipReturnData = shipData[26, mode];
                    return shipReturnData;

                case "- Tyrant":
                    shipReturnData = shipData[27, mode];
                    return shipReturnData;

                case "- Spectre":
                    shipReturnData = shipData[28, mode];
                    return shipReturnData;

                case "- Shadow Stealth Craft":
                    shipReturnData = shipData[29, mode];
                    return shipReturnData;

                case "- Venom":
                    shipReturnData = shipData[30, mode];
                    return shipReturnData;

                case "- Constrictor":
                    shipReturnData = shipData[31, mode];
                    return shipReturnData;

                case "- Phantom Advanced Stealth Craft":
                    shipReturnData = shipData[32, mode];
                    return shipReturnData;

                case "- Dominator":
                    shipReturnData = shipData[33, mode];
                    return shipReturnData;

                case "- Boa Ultimate Carrier":
                    shipReturnData = shipData[34, mode];
                    return shipReturnData;

                case "- Mooncrusher":
                    shipReturnData = shipData[35, mode];
                    return shipReturnData;

                case "Union Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Rustfire":
                    shipReturnData = shipData[36, mode];
                    return shipReturnData;

                case "- Marauder":
                    shipReturnData = shipData[37, mode];
                    return shipReturnData;

                case "- Junker IV":
                    shipReturnData = shipData[38, mode];
                    return shipReturnData;

                case "- Slider":
                    shipReturnData = shipData[39, mode];
                    return shipReturnData;

                case "- El Padre":
                    shipReturnData = shipData[40, mode];
                    return shipReturnData;

                case "- Chitin":
                    shipReturnData = shipData[41, mode];
                    return shipReturnData;

                case "- Horpor":
                    shipReturnData = shipData[42, mode];
                    return shipReturnData;

                case "- Scorpion":
                    shipReturnData = shipData[43, mode];
                    return shipReturnData;

                case "TSS Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Rover":
                    shipReturnData = shipData[44, mode];
                    return shipReturnData;

                case "- Reaper":
                    shipReturnData = shipData[45, mode];
                    return shipReturnData;

                case "- Blood Lanner":
                    shipReturnData = shipData[46, mode];
                    return shipReturnData;

                case "- Sudden Death":
                    shipReturnData = shipData[47, mode];
                    return shipReturnData;

                case "EPS Ships":
                    shipReturnData = 0;
                    return shipReturnData;

                case "- Trident":
                    shipReturnData = shipData[48, mode];
                    return shipReturnData;

                case "- Celeus":
                    shipReturnData = shipData[49, mode];
                    return shipReturnData;

                case "- Vulcan":
                    shipReturnData = shipData[50, mode];
                    return shipReturnData;

                case "- Liberator EPS":
                    shipReturnData = shipData[51, mode];
                    return shipReturnData;

                case "- Pantagruel":
                    shipReturnData = shipData[52, mode];
                    return shipReturnData;

                case "- Nano":
                    shipReturnData = shipData[53, mode];
                    return shipReturnData;
            }
            return 0;
        } // End of.GetShipData();
    }
}
